Preheat the oven to 375°F and lightly grease a baking dish so the casserole releases cleanly after baking.
Bring a large pot of salted water to a rolling boil. Cook the pasta until just al dente so it holds its texture during baking. Drain thoroughly and set aside.
In a large bowl, gently mix the ground beef, breadcrumbs, milk, eggs, garlic, onion, and Italian seasoning just until combined. Avoid overmixing to keep the meatloaf tender.
Press the meatloaf mixture evenly into the prepared baking dish, forming a flat layer without compacting it too tightly.
Bake the meatloaf layer for about 25 minutes so it sets slightly and can support the pasta layer without mixing.
While the meatloaf bakes, melt butter in a saucepan over medium heat. Whisk in flour and cook briefly to remove the raw flour taste.
Slowly whisk in warmed milk, stirring constantly until the sauce thickens and becomes smooth and creamy.
Reduce the heat and stir in mozzarella and parmesan until fully melted. Season lightly with salt and pepper.
Combine the cooked pasta with the cheese sauce, stirring gently so each piece is evenly coated.
Remove the baking dish from the oven and carefully spread the cheesy pasta evenly over the partially baked meatloaf.
Return the casserole to the oven and bake for 25 minutes, until bubbly and lightly golden on top.
Let the casserole rest for at least 10 minutes before serving so the layers set and portions hold together.