Bring a large pot of salted water to a boil over high heat. Add the pasta and cook until tender, but still firm to the bite (about 8-10 minutes). Drain pasta.
In a large skillet, heat olive oil over medium heat. Add onion and garlic. Cook until the onion is golden, about 7 minutes. Add the tomatoes, spinach, and red pepper flakes. stir to combine ad cook until heated through, about 5 minutes.
In a small bowl, mix together the bread crumbs, 1/4 cup parmesan, ad 1/4 cup Romano. Spread the softened butter in a 9x13-inch glass baking dish and sprinkle half of the bread crumb mixture inside dish to coat.
In a large bowl, combine the veggie mixture with cooked macaroni, cubed mozzarella, and the remaining parmesan and Romano cheeses. Spoon into the prepared baking dish, top with the remaining bread crumb mixture, and dot the top with the remaining butter. Bake until the top is golden brown, about 30 to 40 minutes.