Heat oven to 375 degrees. Butter a 3-quart casserole dish; set aside. Place bread in a medium bowl. In a small saucepan over medium heat, melt 2 tablespoons butter. Pour butter into bowl with bread, and toss. Set breadcrumbs aside.
In a medium saucepan set over medium heat, heat milk. Melt remaining 6 tablespoons butter in a high-sided skillet over medium heat. When butter bubbles, add flour. Cook, whisking, 1 minute.
While whisking, slowly pour in hot milk. Continue cooking, whisking constantly, until the mixture bubbles and becomes thick.
Remove pan from heat. Stir in salt, nutmeg, black pepper, cayenne pepper, 3 cups cheddar cheese, and 1 1/2 cups Gruyere or 1 cup Pecorino Romano; set cheese sauce aside.
Fill a large saucepan with water; bring to a boil. Add macaroni; cook 2 to 3 minutes less than manufacturer's directions, until the outside of pasta is cooked and the inside is underdone. (Different brands of macaroni cook at different rates; be sure to read the instructions.) Transfer macaroni to a colander, rinse under cold running water, and drain well. Stir macaroni into the reserved cheese sauce
Pour mixture into prepared dish. Sprinkle remaining 1 1/2 cups cheddar cheese, 1/2 cup Gruyere or 1/4 cup Pecorino Romano, and breadcrumbs over top. Bake until browned on top, about 30 minutes. Transfer dish to a wire rack to cool 5 minutes; serve hot.
You can divide this recipe in half; use a 1 1/2-quart casserole dish.