In a large skillet, heat the olive oil over medium heat until shimmering. Add the onion and cook until golden, about 5 minutes.
Add the ground beef and break apart, then cook for 3 minutes until the meat is no longer pink. Add the pepper, salt, garlic powder, paprika, and tomatoes. Mix thoroughly.
Add the spinach and cook until just wilted, about 2 minutes. Remove the pan from the heat, cover, and set aside until ready to use.
Preheat the oven to 350˚F (180˚C).
Peel the potatoes and cut into ⅛-inch (3 mm) thick slices.
In a 9x5-inch (23x13-cm) loaf pan, arrange overlapping potato slices on the bottom of the pan so the entire bottom is covered. Line the perimeter of the pan with overlapping potato slices.
Place 2 slices of mozzarella over the bottom layer of potatoes. Cut 5 slices of mozzarella in half. Place 2 half slices of cheese against the potatoes on both of the longer sides of the pan and one half on both of the shorter sides. Place one half in each of the corners of the pan.
Spread ⅓ of the beef mixture on top of the cheese. Arrange another layer of overlapping potato slices over the beef mixture. Place 2 more slices of cheese on top of the potatoes.
Spread another third of the beef mixture over the cheese, then add another layer of potatoes. Place 2 more slices of cheese on top of the potatoes. Spread the rest of the beef mixture on top of the cheese.
Tuck potato slices around the sides of the pan until all of the gaps are filled. Place the last 2 slices of cheese on top of the beef mixture. Cover the cheese with overlapping potato slices.
Bake for 90 minutes, until the top is golden brown and crisp. Let cool a bit.
Place a cutting board over the loaf pan and invert the loaf.