Preheat the oven to 375°F. Grease a 9x13-inch baking dish with cooking spray or butter.
Fill a large pot with salted water and bring to a boil. Add elbow macaroni and cook until al dente, according to package directions. Drain and set aside.
In a large saucepan over medium heat, melt the butter. Whisk in the flour and cook, stirring constantly, for about 1 minute until smooth.
Whisk in whole milk and cream. Cook, whisking, until thickened, about 3-5 minutes.
Stir in the salt, ground black pepper, garlic powder, onion powder, and cayenne pepper if using.
Lower the heat and stir in 2 cups of sharp cheddar cheese and all the Monterey Jack cheese. Stir until melted and smooth. If needed, add more milk to thin the sauce.
Combine the cooked macaroni and the cheese sauce. Stir until the pasta is thoroughly coated.
Pour the macaroni and cheese mixture into the prepared baking dish.
Evenly distribute the remaining 1 cup of sharp cheddar and smoked cheddar cheese on top.
Bake in the preheated oven for 30 to 35 minutes, or until the top is golden brown and the edges are bubbling.
Take it out of the oven and allow it to cool for approximately 10 minutes before serving.