Cook macaroni according to package directions until just barely al-dente (about 1 minute less than recommended cook time). Drain and set aside.

Meanwhile, melt butter in a large saute pan or high-sided skillet set over medium heat. When butter is melted and frothy, add flour and whisk until smooth and begins to bubble, 2 to 3 minutes. Slowly pour in warm milk, a little at a time, whisking vigorously, until all the milk is incorporated and mixture is smooth. Don't worry if the mixture gets oddly chunky for a bit, just keep adding milk a little bit at a time and whisking constantly to break up the chunks.

Continue to cook over medium heat, whisking regularly, until sauce bubbles and has thickened slightly, about 8 to 10 minutes. Remove from heat and whisk in cayenne, paprika, and salt and pepper. Slowly add cheeses, a handful at a time, whisking until melted before adding more. Add all but 1/2 cup of cheese (a mix of the three, set this aside for sprinkling on top). Stir in macaroni and sliced Brussels sprouts until evenly coated.

Pour into the prepared dish. Sprinkle with reserved cheese and breadcrumbs over top. Bake for 15 to 20 minutes or until filling is bubbling, then broil for 2 to 3 minutes or until breadcrumbs are golden brown. Remove from heat and allow to cool for 10 minutes before serving.