Preheat oven 350 degrees. Lightly grease a 9x13 inch baking dish. In a large bowl, combine shredded cheddar and Gruyere cheeses and set aside.
Cook pasta one minute short of al dente according to the package instructions. Remove from heat, drain, and place in a separate large bowl. Drizzle pasta with olive oil and stir to coat pasta. Let cool while preparing cheese sauce.
In a large pot, melt butter. Whisk in flour over medium-low heat and continue whisking for 1 minute until golden and bubbly. Gradually whisk in milk and heavy cream until smooth, for about 2 minutes. Whisk in salt and pepper.
Add 2 cups of shredded cheese and whisk until smooth. Add another 2 cups and whisk again. Sauce should be nice and thick. Stir in cooled pasta, fully coating with cheese sauce.
In a small bowl, combine panko breadcrumbs, Parmesan cheese, melted butter and paprika. Sprinkle over the top and bake until bubbly and golden brown, about 30 minutes. Serve immediately.