Coat a 9X13-inch or equivalent baking dish with cooking spray and set aside. Preheat oven to 350 degrees.
In a large pot of lightly salted, boiling water, cook the penne pasta according to package directions.
While the pasta is cooking, heat a large 12-inch skillet over medium heat. Add beef or turkey to the pan with the diced onions and 1 teaspoon salt and pepper. Cook, stirring to break up the meat into small pieces, until the meat is cooked through. Drain excess grease from the meat. Add the garlic and cook until fragrant, another minute or so.
Sprinkle the flour over the meat mixture, stirring to combine, and cook for 1-2 minutes over medium heat. Add the cream cheese in pieces, scattering it over the meat. Let it melt into the meat and stir to combine.
Whisk or stir in the milk, nutmeg, allspice, cinnamon, 3/4 teaspoon salt, Italian seasoning and tomatoes. Stir to combine and bring the mixture to a simmer. Cook 5-6 minutes until the mixture is slightly thickened and is thoroughly heated through.
Stir in the pasta and spoon the pasta mixture into the prepared pan. Sprinkle the mozzarella cheese evenly over the pasta and bake for 15 - 20 minutes, until the cheese is starting to brown (watching carefully so it doesn’t burn).
Remove from the oven and sprinkle with parsley. Let it stand for about 5 minutes before serving.