Preheat the oven to 425°F (200c for fan ovens) and butter a 9x13-inch baking dish.
In a small bowl, combine the bread crumbs and olive oil, tossing to coat. Add the pecorino cheese and toss again to combine. Bring a large pot of salted water to a boil. Cook the macaroni according to the package instructions, stopping a minute shy of al dente. Drain and toss with a drizzle of olive oil to prevent sticking.
In another large pot (or reuse the pasta pot after washing and drying it), melt the butter over medium heat. Add the flour and whisk continuously until the mixture turns light golden brown, about 4 minutes. Slowly whisk in the milk.
Add the garlic, mustard, paprika, salt, and several grinds of pepper. Bring to a simmer, whisking continuously.
Add the cheddar and Gruyère cheeses, whisking until melted. Cook over medium-low heat, whisking often, for 6 to 8 minutes, or until the sauce thickens slightly. Stir in the cooked pasta to coat. Transfer the mixture to the prepared baking dish and top with the bread crumb mixture. Bake for about 20 minutes, until the topping is crisp and the cheese is bubbling.