Place 1/2 cup (40g) coconut in a small skillet and cook over medium-low heat, stirring constantly, until toasted, about 7-8 minutes. Transfer toasted coconut to a bowl and set aside to cool.
Place egg yolks in a small bowl and whisk until smooth.
Whisk sugar, cornstarch and salt in a medium saucepan. Whisk in the coconut milk and whole milk until smooth. Place the pan over medium-high heat and cook, whisking constantly, until the mixture is hot, steaming, and just shy of boiling.
Slowly stream about 1 cup of the milk mixture into the beaten egg yolks, whisking continuously, then pour the yolk mixture back into the saucepan. Bring to a gentle boil and reduce heat to low. Cook, stirring constantly, for an additional 2 minutes and then remove from heat. Whisk in butter, vanilla and coconut extract (if using).
Strain filling mixture through a fine-mesh sieve into a medium size bowl and then fold in remaining 1 cup (80g) of un-toasted coconut. Pour filling into baked and cooled pie crust.
Press a piece of wax or parchment paper or plastic wrap directly on top of the filling and chill for at least 4 hours or overnight before serving.
Before serving, top with whipped cream and toasted coconut.
Store loosely covered, in the refrigerator, for 2-3 days. I don’t recommend freezing this pie.