Preheat oven to 375 degrees F.
Fill a stock pot with water. Place on stove. Bring to a boil. Add salt to the water. You will be using this to boil the noodles but don't do that till your sauce is simmering.
In the meantime place a large dutch oven on the stove top. Add oil, onions and shallots to the dutch oven, turn on medium heat, cook until onions start to soften.
Add ground beef to the dutch oven and cook until it's browned and juices run clear.
Pour both cans of tomatoes into a blender and give it a whir until it's smooth. Transfer that to the dutch oven. Add the Worcestershire sauce. Stir. Add spices to the dutch oven and bring to a boil then reduce heat to a simmer. Allow to simmer for about 10 minutes.
At this time you want to add your macaroni noodles to the pot with water. Cook until al dente, about 1 minute less than the package tells you to cook them.
Please do not rinse your noodles, reserve 1/2 cup of the pasta water, set that aside for when you need it. You can now drain your noodles, but do not rinse them.
Add the cooked macaroni noodles, pasta water and parmesan cheese to the dutch oven. Mix really well.
Now you can cook the casserole in your dutch oven in the oven, but I transfer mine to two casserole dishes. Spread out with a spoon.
Press about 1/2 the mozzarella cheese into the casserole so it sinks in a bit. Then top with the other half.
Pop your casserole in the preheated 375 degree F oven, cook for about 20 to 25 minutes, depending on how you like your cheese. We like ours when it is golden brown.
Remove from oven and eat right away.
Serve with a big old casserole loving smile!