Preheat oven to 375 F.
Boil pasta in salted water until al dente. Drain and set aside.
For the meat sauce, in a nonstick pan over medium heat, cook the onion with vegetable oil, stirring occasionally until softened for about 6 minutes. Add the minced beef and break it up using a wooden spoon and cook until browned, for about 5-7 minutes. Add all the spices and the tomato sauce and simmer for 5 minutes. Set aside.
Make the bechamel sauce by melting the butter over medium heat in a large pot. Add the flour in a few tablespoons at a time and continue whisking as you do this to form a creamy roux. Cook for 3-4 minutes as you continuously whisk.
Pour the milk in slowly while continuously whisking. Add in the chicken stock and continue to whisk for 4-5 minutes until the sauce thickens. Season with ground nutmeg, salt and pepper to taste.
Mix the pasta with approximately 1 cup of the Bechamel sauce.
In a deep, large casserole dish, add 2 tablespoons of Bechamel sauce and spread it around, then add half the pasta.
Add all of the meat mixture on top and even out the layer with the back of a spoon. Add the remaining pasta.
Cover with the remaining Bechamel sauce.
Bake for 30 minutes until bechamel has turned golden brown, then add 1 cup of shredded mozzarella cheese evenly to the top and return to the oven and broil for an additional 3-5 minutes until cheese is golden brown and bubbling. Let rest 10-15 minutes before cutting and serving.