Make the Choux Pastry:
Preheat the oven to 400°F (200°C) and line a baking sheet with parchment paper.
In a medium saucepan, combine the butter, water, and salt. Bring to a boil over medium heat.
Add the flour all at once and stir vigorously with a wooden spoon until the mixture forms a ball and pulls away from the sides of the pan.
Remove from heat and let cool for 5 minutes.
Add the eggs one at a time, beating well after each addition until the dough is smooth and glossy.
Transfer the dough to a piping bag and pipe small mounds onto the prepared baking sheet, spacing them about 2 inches apart.
Bake for 25–30 minutes, or until golden brown and puffed. Let cool completely.
Prepare the Coconut Cream Filling:
In a saucepan, combine the whole milk, coconut milk, and half of the sugar. Heat over medium heat until just simmering.
In a bowl, whisk together the egg yolks, remaining sugar, and cornstarch until smooth.
Gradually pour the hot milk mixture into the egg mixture, whisking constantly to temper the eggs.
Return the mixture to the saucepan and cook over medium heat, whisking constantly, until thickened.
Remove from heat and stir in the vanilla extract and shredded coconut.
Transfer the custard to a bowl, cover with plastic wrap (pressed directly onto the surface), and refrigerate until chilled.
Fill the Cream Puffs:
Once the pastry shells are cooled, cut them in half horizontally.
Spoon or pipe the chilled coconut cream filling into the bottom half of each shell.
Replace the top half and press gently.
Garnish and Serve:
Sprinkle with toasted coconut flakes and a dusting of powdered sugar for a touch of elegance.
Serve immediately or refrigerate until ready to enjoy.