Preheat the oven to 350°F and spray a 9x13-inch baking dish with nonstick cooking spray. Set aside.
In a large saucepan over medium-high heat, add water, filling halfway to the top.
Add a pinch of salt and heat to boiling.
Add broccoli florets and cook for three minutes (or until bright green). Meanwhile, prepare a bowl of iced water for the ice bath.
Transfer the broccoli to the ice bath and set aside.
In a medium skillet over medium-high heat, melt butter.
Add onions and mushrooms. Saute for 15 minutes. Add the minced garlic and cook for one additional minute.
Remove the skillet from heat. Add broccoli, diced tomatoes, 1 cup sharp cheddar shredded cheese, ½ cup mozzarella cheese, cream of mushroom soup, mayonnaise, sour cream, eggs, salt, and pepper.
Pour the mixture into the prepared baking dish.
Top with remaining cheddar and mozzarella cheeses.
Bake, uncovered, for 45 minutes, or until heated through and browned on top.