Cook the pasta according to the package directions, keeping it on the al dente side. Drain and return to pot. Stir 2 tablespoons of the butter into the hot pasta, stirring to full melt. (Optionally, you may melt the butter first and then add it to the pot.) Stir in 1/3 cup of the Parmesan cheese, 1/3 cup of the milk, and 1 beaten egg. Set aside.
In a large skillet, sauté the ground beef and onion until the meat is cooked through and the onion is soft. Break up the meat as you go, and then drain any excess fat from the pan. Stir in tomato sauce, salt, mint, cinnamon, and nutmeg. (If you taste the meat sauce now, it may seem a bit salty. Don’t worry. This will balance the unsalted components later.) Set aside.
In a saucepan, melt the remaining 4 tablespoons of butter, and then mix in the cornstarch or arrowroot powder until smooth. Slowly add the remaining 2 cups of milk, stirring briskly as you pour so that no lumps form. Cook, stirring often, over medium-high heat until the sauce starts to thicken a bit. Cook and stir for another minute, and then remove the pan from the heat. Beat the second egg in a small bowl. Stir in a few spoonfuls of the white sauce to temper the egg (this will keep the egg from scrambling when you add it to the hot sauce), and then pour the egg mixture into the white sauce, stirring briskly. Stir in the remaining 1/3 cup of Parmesan.
Add half the pasta mixture to an 11 x 7-inch baking dish or other 2-quart casserole. (I don’t grease the pan.) Spoon all of the meat mixture evenly over the pasta layer, and then top with the remaining pasta. Finally, pour the white sauce over the pasta to completely cover. (It’s fine if some of the noodle edges are sticking out.)
Bake, uncovered, in an oven preheated to 350 degrees F. for about 30-40 minutes, or until hot and lightly browned. If desired, you may broil for a minute or two, watching closely, to add a little extra golden color to the top. Let the dish stand for 10 minutes, and then serve and enjoy.