Bring a large pot of water to a boil over high heat. Butter a 2.5 qt baking dish or similar.
Meanwhile, in a medium pot melt butter. Sauté shallots and garlic until very soft.
Whisk in flour to make a roux. Cook, stirring for about 1 minute.
Slowly whisk in beer and milk. Cook, stirring continuously (scraping the bottom to prevent scorching) over medium heat until bubbling and thick.
Turn heat to low and cook, stirring often to prevent scorching, for 25-30 minutes. This cooking step ensures that the sauce won’t taste floury.
Meanwhile, heavily season the boiling water with salt, cook pasta to al dente. Strain and toss in a little oil to prevent sticking. Set aside.
Once the sauce has cooked, remove from the heat. Stir in both cheeses, in two additions, melting the cheese before adding the next addition. *
Stir in mascarpone and dijon. Season with salt and pepper to taste.
Pour cheese sauce over the pasta and stir to coat.
Transfer to a buttered baking dish and top with the remaining 2 oz of each cheese. Sprinkle with grated pecorino.
Broil until the top is golden and bubbly. Serve. **