Preheat your oven to 350°F (175°C).
In a large skillet, heat olive oil over medium heat. Add the chopped onion and garlic, sautéing until softened, about 5 minutes.
Add the ground beef or lamb to the skillet, cooking until browned. Drain any excess fat.
Stir in the crushed tomatoes, tomato paste, oregano, cinnamon, salt, and pepper. Simmer for 15-20 minutes until thickened.
Meanwhile, cook the pasta according to package instructions until al dente. Drain and set aside.
In a saucepan, melt the butter over medium heat. Whisk in the flour and cook for 1-2 minutes until golden.
Gradually whisk in the milk, stirring constantly until the mixture thickens, about 5-7 minutes. Remove from heat and stir in nutmeg, Parmesan cheese, and beaten eggs.
In a greased 9x13 inch baking dish, layer half of the pasta, followed by the meat sauce, then the remaining pasta. Pour the béchamel sauce over the top, spreading it evenly.
Bake in the preheated oven for 30-35 minutes, or until the top is golden and bubbly. Let it cool for 10 minutes before serving.