Bring a large pot of salted water to a boil. Cook the macaroni until just al dente.
Reserve 1/3 cup of the pasta water, then drain the pasta and set it aside.
Steam or boil the butternut squash for 10 to 12 minutes, until very soft.
Blend the squash until completely smooth, using a blender or an immersion blender.
Melt the butter in a large saucepan over medium heat. Whisk in the flour and cook for 1 to 2 minutes, until lightly golden.
Slowly whisk in the milk. Stir constantly for 4 to 5 minutes, until the sauce thickens.
Stir in the squash puree, salt, black pepper, garlic powder, onion powder, and nutmeg, if using.
Reduce the heat to low. Stir in the cheddar, mozzarella, and Parmesan until fully melted and smooth. Add a splash of the reserved pasta water if the sauce is too thick.
Fold in the cooked pasta until evenly coated. Serve warm.