Cook the pasta according to instructions on the package - al dente.
Add the olive oil in a large skillet, over medium heat.
When hot, add the chopped onions. Saute them for a few minutes.
Add chopped carrots and continue to cook for about 5 minutes.
Add the tomatoes and cook for 2 more minutes.
Add tomato juice, tomato paste, wine, and lentils. Let them cook until the lentils absorb the liquids, stirring occasionally.
Add cinnamon, cumin, black pepper, garlic powder, smoked paprika, and nutmeg. Mix well to incorporate. Add water and let it cook for about 7 more minutes. Set aside.
Make the vegan Bechamel sauce.
In a sauce pot, on low heat, melt the vegan butter.
Add flour and whisk well until the mixture becomes thick.
Add milk, stirring continuously until the mixture thickens.
Add white pepper, salt, and nutmeg.
Divide the sauce into two parts.
Using a food processor, add one part of the sauce and mix it with silken tofu. Blend until smooth.
Using a baking dish, layer the cooked pasta on the bottom, cover it with the initial Bechamel sauce, then layer it with lentil mixture and cover it up with tofu-sauce.
Bake at 200C for about 35 minutes or until golden on top.