Preheat your oven to 375°F (190°C) and grease a 9x13 inch baking dish.
Cook the macaroni according to package instructions until al dente. Drain and set aside.
In a large pot or Dutch oven, melt 4 tablespoons of butter over medium heat. Add the diced onion, carrot, and garlic, and sauté until softened, about 5 minutes.
Add the flour to the pot and stir continuously for about 1 minute to create a roux.
Gradually whisk in the warm milk and heavy cream, stirring constantly to prevent lumps from forming.
Bring the mixture to a simmer and cook until it begins to thicken, about 5 minutes.
Break the Japanese curry roux into pieces and add to the pot. Stir until completely dissolved and well incorporated.
Add the soy sauce, salt, and pepper. Adjust seasonings to taste.
Remove the pot from heat and gradually add the cheddar, mozzarella, and half of the parmesan cheese, stirring until melted and smooth.
Add the cooked macaroni to the curry cheese sauce and fold gently until all pasta is evenly coated.
Transfer the mixture to the prepared baking dish.
If using the optional topping, combine the panko breadcrumbs with the melted butter and remaining parmesan cheese. Sprinkle this mixture evenly over the mac and cheese.
Bake in the preheated oven for 20-25 minutes, or until the top is golden brown and the edges are bubbling.
Remove from the oven and let it rest for 5 minutes before serving.
Garnish with chopped parsley or scallions and serve hot.