Cook the elbow macaroni according to package instructions. Drain and set aside.
In a large saucepan, melt butter over medium heat. Add flour and whisk to create a roux, cooking for 1-2 minutes until slightly golden.
Slowly add milk while whisking continuously to avoid lumps. Bring to a simmer and cook until the sauce thickens.
Stir in the shredded Mozzarella cheese and American cheese. Add the cooked macaroni to the sauce, mixing until well-coated and creamy.
Top with parmesan cheese, salt and pepper to taste.