This is very similar to a dish served at my grade school. A real comfort food.
Peel, cube, and boil the potatoes. Add butter to the milk and warm until the butter melts. Drain potatoes, salt and pepper to taste and whip with an electric beater with the warm milk/butter mixture. Add the beaten egg and whip lightly. In the meantime, heat a large skillet over medium low heat, saute the onions in oil until they are translucent (soft), add the garlic and stir for about a minute more, remove from pan and reserve.
Turn heat to high and make a large patty out of the ground beef, when the pan starts to smoke, add the patty and brown on one side, turn the patty, and start browning on the other side, breaking it up as it cooks.
Once the meat is thouroughly cooked, whisk the flour into the beef stock and pour it over the beef, add the dash of Worcestershire sauce, return the onion/garlic mixture back to the pan and let it simmer for about 5-10 minutes, until thick. Season with salt and pepper. Pour this mixture into a 13x9” glass baking dish and top with the corn. Spread the mashed potatoes on top, and sprinkle liberally with melted butter.
Bake at 350 degrees for 30 minutes until bubbly. (You might want to put some aluminum foil under the dish as it sometimes bubbles over)
Let sit 10 minutes, serve.