In a medium saucepan, whisk together the sugar, cornstarch, and salt.
Gradually whisk in the coconut milk and whole milk until the mixture is smooth.
In a separate bowl, whisk the egg yolks.
Slowly add a small amount of the warm milk mixture to the egg yolks while whisking continuously.
Pour the egg mixture back into the saucepan and whisk to combine.
Cook over medium heat, stirring constantly, until the mixture thickens and becomes creamy.
Remove the saucepan from the heat.
Stir in the butter and vanilla extract until completely incorporated.
For an extra-smooth texture, strain the pudding through a fine-mesh sieve.
Pour the pudding into individual dessert cups or serving bowls.
Allow it to cool slightly, then cover and refrigerate for at least 2 hours.
Top with toasted coconut flakes, whipped cream, fresh mango, or berries before serving.
Serve chilled and enjoy.