Heat butter in a saucepan until melted; stir in the flour until smooth. Cook, stirring, over low heat until the flour is cooked, about 3 minutes. Gradually stir in the hot milk until smooth. Cook, stirring constantly, until mixture boils and is thickened. Cook, stirring frequently over low heat, 5 minutes.
Stir in salt.
Cook and drain the macaroni according to package directions. Combine the white sauce, cooked elbow macaroni, parmesan, and romano until blended.
Pour into a buttered 9 x 13-inch baking dish. Sprinkle the top with shredded mozzarella.
Bake in a preheated 350° oven until top is browned and bubbly, about 45 minutes.