Preheat your oven to 350°F (175°C). Grease a 9x13-inch baking dish.
Place the peeled and cubed potatoes in a large pot. Cover with water and bring to a boil. Cook for 15-20 minutes or until the potatoes are fork-tender. Drain well.
Return the potatoes to the pot and mash until smooth. Add the sour cream, cream cheese, melted butter, and warm milk, mixing until creamy.
Stir in 2 cups of cheddar cheese, mozzarella cheese, garlic powder, onion powder, salt, and pepper. Mix well to combine.
Transfer the mashed potato mixture into the prepared baking dish. Spread evenly and top with the remaining 1/2 cup of cheddar cheese and crumbled bacon.
Cover the dish with foil and bake for 20 minutes. Remove the foil and bake for an additional 10-15 minutes, or until the cheese is melted and bubbly.
Remove from the oven and sprinkle with chopped green onions. Let it cool slightly before serving.