Cook the Pasta: Boil the macaroni in well-salted water until slightly undercooked, then drain without rinsing and set aside.
Make the Roux: Melt butter over medium heat, add flour, and whisk continuously until a smooth, lightly golden paste forms.
Add Milk: Slowly pour in the milk while whisking, cooking until the sauce thickens and coats the back of a spoon.
Add Cheese: Reduce heat to low and stir in cream cheese, then cheddar and mozzarella in batches until fully melted and smooth. Add seasonings.
Combine: Add the pasta to the cheese sauce and mix gently until evenly coated and creamy.
Optional Bake: Transfer to a baking dish, top with buttered breadcrumbs, and bake until golden and crispy.