Preheat the oven to 400 degrees F. Lightly grease a 9x13inches baking dish and set aside.
While the potatoes are cooking, prepare the meat filling.
Place a large skillet over medium-high heat. Add oil and wait for it to simmer. Once hot, add onion and cook stirring it for 1 minute. Add minced garlic and cook for 30 seconds, just until fragrant.
Add the ground lamb (or beef), season with salt and pepper and cook until browned and no longer pink breaking it into crumbs with a wooden spoon, approximately 5-7 minutes. Add the tomato sauce, Worcestershire sauce, rosemary, oregano, add beef broth for a wetter mixture and stir to combine.
Bring to a boil, reduce the heat to low, and simmer covered for about 10 minutes.
Add the grated carrot, corn, and peas to the skillet, stir and combine.
Transfer the mixture to the bottom of a lightly greased 9x13 inches baking dish. Spread it evenly and top with the mashed potatoes, smooth the top with a rubber spatula.
Bake in the preheated oven for 25-30 minutes or just until the potatoes begin to brown. Once done, place onto a cooling rack and let it sit for 15 minutes before serving. Garnish with chopped green onions before serving.