Preheat the oven to 220 C and grease a 9x13 inch baking dish with butter.
In a large pot of salted boiling water, cook the pasta a minute less than the packaging says. Drain and add some oil so that it doesn't stick.
In the meantime, in a large saucepan, heat the stick of butter over medium-high heat until melted. Add the flour and constantly whisk until it reaches a light brown colour - it will take around 5 to 6 minutes.
Gradually add the milk and keep whisking, increase the heat and bring to a boil. Reduce again the heat and whisk until it thickens - around 5 minutes.
Add the cheeses a bit at a time, keep aside some of it for later. Whisk until smooth. Lastly, add in 2 teaspoons of salt, pepper and chilli flakes. If you're using the pancetta, add it now.
Stir in the pasta, season to taste if needed and cook until the pasta is hot again.
Pour the mixture into the buttered baking dish. Top with the remaining cheese.
Finely slice the garlic. In a large skillet, over medium-low heat, melt the butter until foamy, add the garlic and stir for 1 to 2 minutes. Add the panko and increase the heat to medium. Stir frequently until toasty and brown - 7 to 9 minutes. Stir in salt and pepper, let it cool when done. After 5 minutes add the parmesan.
Now add the crumbs evenly on top of the pasta and bake until the topping is browned and crisp around 8 minutes. Plate and serve.