Bring a large saucepan of lightly salted water to the boil. Add macaroni and cook for 8 to 10 minutes or until al dente; drain. Combine macaroni, 1 beaten egg, 4 tablespoons Parmesan and set aside.
To make the meat sauce: Drop the plum tomatoes in boiling water for about 45 seconds. Peel the skin off then seed and chop. Cook minced beef, onion and garlic together in a frying pan until meat is brown and onion is tender. Drain off fat. Stir in fresh tomatoes, passata, chicken stock, vinegar, chilli powder, allspice, cinnamon and salt. Bring to the boil; reduce heat and simmer uncovered for 15 to 20 minutes until thick. You don't want the sauce to be watery.
To make the white sauce: Melt margarine in a saucepan and stir in flour and pepper. Add the milk all at once. Cook and stir until smooth, thick and bubbly. In a bowl, combine about half of the mixture with 1 beaten egg. Return the egg mixture into the saucepan with the remaining white sauce. Stir in 4 tablespoons Parmesan.
In a square glass baking dish, add 1/2 the pasta mixture. Next, add all of the meat sauce. Then, the remainder of the pasta and top with all of the white sauce. Sprinkle lightly with cinnamon, if desired.
Bake in preheated oven for 30 to 35 minutes. Let stand about 5 minutes before serving. The white sauce will firm when cooked.