Preheat the oven to 375 degrees. Grease a deep 9x13” baking dish.
In a medium pot over medium-high heat, brown the ground beef with the onion until the meat is no longer pink. Drain well and return to the pot.
Turn the heat down to low and add the crushed tomatoes, plum tomatoes (crushing them by hand as they are added), oregano, basil, white pepper, garlic and onion powders, salt and pepper according to taste. Stir everything to combine. Maintain your heat. Bring the sauce to a gentle simmer. Simmer for 20 minutes (to allow the flavors to marry), stirring often. You can prepare your pasta while the sauce is being made.
After 20 minutes, give the sauce one more stir and taste; adjust seasoning as desired.
Drain the pasta very well and add back into the pot. Add the egg yolks and stir to coat the noodles completely and evenly.
Add the noodles to the sauce and gently stir all the ingredients together. Pour the spaghetti mixture into the greased baking dish.
Sprinkle the cheeses evenly over the top.
Cover the dish with aluminum foil and bake for 30 minutes. (Spraying the foil with a nonstick spray helps the cheeses to not stick to the foil.) Remove the foil and bake for another 15 to 20 minutes, or until the cheeses are lightly browned and the sides are bubbly. If you desire more browning on the cheeses, broil for about 1 minute, watching carefully to avoid burning the cheese.
Remove the baked spaghetti from the oven and allow it to stand at room temperature for 15 to 20 minutes. Top with the parsley and serve warm.
Cover well and refrigerate any leftovers for up to 4 days.