Cook the pasta according to package instructions until al dente. Drain and set aside.
In a large saucepan, heat 2 tablespoons of olive oil over medium heat. Sauté the chopped onion and minced garlic until translucent and fragrant.
Add the diced tomatoes, tomato paste, dried oregano, ground cinnamon, salt, and pepper to the saucepan. Stir well and simmer for 15-20 minutes.
Add the cooked lentils/chickpeas or rehydrated TVP to the tomato sauce. Allow the mixture to simmer for an additional 5 minutes. Set aside.
Preheat the oven to 400°F (200°C). In a skillet, heat 2 tablespoons of olive oil over medium heat. Cook the eggplant slices until golden brown on both sides. Set aside.
In a separate saucepan, melt the butter over medium heat. Whisk in the flour and cook for 2 minutes. Gradually pour in the milk, whisking continuously. Add the ground nutmeg, salt, and pepper. Continue whisking until the sauce thickens. Remove from heat and stir in the grated Parmesan cheese (optional).
In a 9x13-inch baking dish, layer half of the cooked pasta. Arrange the cooked eggplant slices on top. Pour the tomato and vegetarian protein mixture over the eggplant layer. Pour the prepared béchamel sauce over the top.
In a small bowl, combine the grated Parmesan cheese (or vegan substitute) and breadcrumbs. Sprinkle this mixture evenly over the béchamel sauce. Drizzle the melted butter (or olive oil).