Cook the bacon slices according to package directions and allow to drain/cool for a few minutes on a stack of paper towels. Transfer the bacon to a cutting board and chop into pieces with a knife. Set aside.
Pre-heat the oven to 350 degrees. Mist a 9x13 baking dish with cooking spray and set aside.
Drizzle the oil into a large sauté pan and bring over med-high heat. When the oil is hot, add the onions and cook, stirring occasionally, for about 4-5 minutes until the onions are softened and a bit browned. Add the minced garlic and the chopped spinach and stir together. Cook, stirring regularly for about 2 minutes until the spinach is wilted and the garlic is fragrant. Add the cooked bacon pieces into the pan and stir together. Cook for another minute and remove from heat.
In a large mixing bowl, add the eggs, milk, and mustard and whisk together until smoothly combined. Add 2 ounces of the shredded Mozzarella, the shredded Parmesan, and the hash browns, salt, and pepper. Stir together until well mixed.
Transfer the spinach and bacon mixture from the pan into the mixing bowl containing the egg mixture and stir to combine. Pour this mixture from the bowl into the prepared 9x13 baking dish and make sure it’s evenly distributed. Sprinkle the remaining 2 ounces of shredded Mozzarella over the top and then cover the dish with aluminum foil.
Place the dish in the heated oven and bake covered for 45 minutes. Remove the foil and continue to bake for another 15 minutes or until cooked through. Allow to cool for 5-10 minutes before slicing into 8 pieces and serving.