Put the pistachios in a high speed blender. In a medium saucepan, gently bring coconut milk and salt (if using unsalted pistachios) to a boil, stirring with a rubber spatula. Pour over the pistachios. Put the lid on the blender and let steep for 5 to 10 minutes. Blend until smooth and transfer back to the saucepan.
In a large, 8-cup liquid measure or a large mixing bowl, whisk the eggs, egg yolks, sweetened condensed milk and cornstarch until fully combined with no lumps.
Gently bring the pistachio mixture to a boil over medium heat (it will be pretty thick), stirring and scraping the bottom continuously. Ladle about 1/3 cup of the pistachio mixture into the egg mixture, whisking vigorously. Add another 1/3 cup, whisking again. Pour the tempered egg mixture back into the saucepan and cook over low to medium heat until the pudding is bubbly and thick. Continue to whisk, alternating between this and scraping the bottom with a wood spoon. This will take around 6 to 8 minutes.
Remove from the heat and add the rose water if using and the almond extract. Add in the food coloring if using and stir to combine. Set aside to cool completely, or cool over an ice bath. Pour into the crust and refrigerate until set- at least 4 hours or overnight.
Once the pie is set, add a dollop of whipped cream on top.
Decorate with dried rose petals, chopped pistachios and serve. Keep refrigerated.
Set an oven rack in the middle position. Preheat the oven to 350 degrees F.
In the food processor, pulse the cookies into fine and evenly-sized crumbs. Add the melted butter and salt and process until the mixture starts to clump. Transfer to a 9-inch pie dish. Using the flat bottom of a dry measuring cup (or a drinking glass) press the crumbs into an even layer on the bottom and sides. Bake in the oven for 6 to 8 minutes. Remove from the oven and set aside to cool completely.
Just before serving the Pistachio Pudding Pie, whip heavy cream and powdered sugar to soft peaks.