Preheat the oven to 375 degrees F. Lightly grease a 9X13-inch pan with cooking spray.
For the potatoes, place the potatoes in a medium saucepan and cover with 1-2 inches of water. Add a teaspoon of salt. Bring to a boil and cook for 15 minutes until the potatoes are tender.
Drain the potatoes and return to the pot. Mash the potatoes lightly. Add the butter, milk (start with 1/2 cup and add more if you want the texture creamier and softer), Parmesan and cheddar cheeses, salt and pepper to taste, and garlic powder. Mash together until smooth and creamy. Add the egg yolk, if using, and mix until well-combined.
For the meat and vegetable mixture, in a large 12-inch nonstick skillet over medium heat, add the ground meat, onion, carrots, garlic, salt and pepper. Cook, breaking the meat into small pieces, until the meat is no longer pink and the vegetables are starting to soften, 5-7 minutes or so. Drain excess grease.
Sprinkle the flour over the meat and cook over medium to medium-high heat for a minute or so, stirring constantly. Stir in the tomato paste, broth, Worcestershire sauce, oregano, thyme, and rosemary. Bring to a simmer and cook for 8 to 10 minutes.
Stir in the corn and peas.
Pour the meat mixture into the prepared pan. Spread the mashed potatoes over the top all the way to the edges of the pan creating a seal over the meat mixture. Sprinkle the 1 cup cheddar over the top of the potatoes.
Bake for 35-40 minutes until the edges are golden and the casserole is bubbling. Let it rest for 10 to 15 minutes before serving. Serve warm.
Notes
Multi-Tasking: to help the dish come together quickly, while the potatoes are boiling, I start the meat and vegetable mixture. Seasonings:if you don't enjoy the flavors of rosemary and/or thyme, either of those seasonings can be left out. UPDATES:
Potatoes: many readers (and myself) report over the years wanting a thicker potato topping. To do that, simply 1 1/2 or double the potato layer ingredients.
Filling:I often increase the filling ingredients as follows: 2 tablespoons flour + 1 3/4 cups broth + 1 tablespoon Worcestershire. And I often add a teaspoon or so of beef bouillon paste to amplify flavor. This recipe is very adaptable to changes like this (and a great recipe to play around with).