Peel potatoes and dice into large cubes. Place in a pot and cover with cold water. Bring to a boil and boil partially covered for 20-25 min or until potatoes are tender when you poke them with a fork.
Drain the potatoes, then return to the pot they were cooking in. Use a potato masher to mash them well, then add the butter, milk, salt and pepper and stir to combine.
For the meat:
In a large skillet over medium high heat, add the olive oil. Once hot, add the diced onions and garlic and cook for 3-4 minutes until softened, stirring continuously.
Add the minced beef, and cook until brown. Drain any extra fat (optional) then add the seven or all spice, cinnamon, salt and pepper. Stir well to combine. Continue cooking a good 6-8 minutes until totally brown. Break up any large clumps of meat with a wooden spoon.
Cook for a minute, breaking apart any clumps of meat with a wooden spoon, then add all the spices (seven spice or all spice, cinnamon, salt and black pepper).
Continue cooking, a good 6-8 minutes until meat is all cooked through and brown. Set aside.
To assemble:
Spread half of the mashed potatoes onto the base of a 9x13 inch pyrex pan. Evenly spread all the ground beef, then gently dollop the remaining half of the mashed potatoes on top, being careful to spread them out evenly. You just want to be gentle to avoid getting the meat mixed in with the mashed potatoes so that you end up with 3 distinct layers.
Mix together the melted butter and breadcrumbs, and sprinkle on top of the second layer of potatoes. Bake uncovered at 375 F (190C) for 30-35 minutes or until golden brown.
Video
Notes
Storing Leftovers: Leftovers will keep 3-5 days tightly covered in the fridge, or can be frozen for 2 months.