Peel and cube your potatoes and set them in a medium pot. Cover with water and bring to a boil over medium high heat. Reduce heat and simmer until potatoes are tender, about 25 minutes.
While the potatoes cook, heat a large skillet over medium high heat and add the ground beef, mushrooms, and onion. Cook until the beef is cooked through and the vegetables are tender, 8 to 10 minutes.
Add the garlic and stir to combine. Cook until fragrant, about 1 minute.
In a small bowl combine the broth and corn starch. Mix well to combine.
Add the corn starch slurry to the skillet and cook until slightly thickened, about 2 minutes.
Add the Worcestershire sauce, frozen corn, and frozen peas and carrots. Stir to combine.
Add the salt and adjust to taste.
Add the mixture to the bottom of a 9x13 casserole dish or baking pan, or if your skillet is oven proof, leave it in the skillet.
When the potatoes are soft, drain the water and place the potatoes back in the pot they cooked in.
Add the milk and butter and mash well with a fork or potato masher.
When potatoes are mashed, stir in the Parmesan and cheddar cheese and adjust the salt and pepper to taste (you'll need at least 1/2 teaspoon of salt in the potatoes).
Spread the mashed potatoes evenly over the top of your beef mixture.
Bake in a 400 degree F oven for 30 minutes.
Serve hot.
Notes
Russet potatoes work the best for the mashed potato topping but you can also use red potatoes with the skins on (you just won’t have as smooth of a consistency).
Feel free to swap out the ground beef with the more traditional ground lamb or even ground chicken or turkey. Each works well with this recipe.
By mixing in both cheddar and Parmesan into the potatoes before baking, you will get a delicious topping with crunchy and melty bits of cheese mixed throughout.
Store leftovers in the fridge for up to three days or freeze for up to a month.