Fill a large saucepan half full of water. Add the potato chunks and bring to a boil. Boil over medium-high heat for 15-20 minutes, or until potatoes are soft. Strain the potatoes and add them to a large mixing bowl. Add the butter, milk, garlic powder, 1/2 cup cheese, salt and pepper. Using a stand or hand-held mixer (or a potato masher), mix until creamy and set aside.
In a large skillet or Dutch oven, heat the olive oil over medium. Add the carrots, onion, garlic, parsley, salt and pepper. Cook for 10 minutes, stirring occasionally. Push the veggies to the sides of the pan and add the ground meat to the center, cooking and stirring until no longer pink.
Thoroughly whisk in the flour and add beef broth (or stock) and Worcestershire. Bring to a boil over medium-high heat. Add the peas and corn and cook for an additional 5 minutes.
Preheat oven to 350 degrees F and coat a 9×13 baking dish with cooking spray. Pour the meat mixture in an even layer into the prepared baking dish. Top with the mashed potatoes and spread into an even layer. Top with the 1 cup of cheese and 1 tablespoon of parsley. Bake in the preheated oven for 30 minutes. Let sit for 10 minutes before serving.