Start by making a graham cracker and cookie crust: Crush the graham crackers, ginger snaps, and pecans in a food processor (or by hand in a baggie with a rolling pin). Stir in melted butter, press into a pie tin, and bake at 350° for 10 minutes. Then leave the crust to cool.
To make the coconut custard, start by heating eggnog and cream of coconut, cinnamon and cardamom in a saucepan until scalding.
In a bowl, whisk together yolks, sugar, cornstarch, and salt until pale yellow.
Carefully temper the yolk mixture by whisking in 1/2 cup of the hot milk mixture. Then, slowly add the remaining milk, whisking continuously until fully combined.
Pour the custard base back into the saucepan and place over low heat. Whisk continuously until the custard boils and thickens. Then remove from the heat.
Whisk in the cold butter and vanilla extract. Let custard cool to room temperature.
Pour the cooled custard into the cooled crust and refrigerate until completely chilled, at least 2 hours.
Toast coconut flakes (if using) in a pan over low heat until the edges are golden. Let cool.
Whip cream with icing sugar until it is thick and spreadable.
Top the pie with whipped cream and sprinkle on coconut flakes, cinnamon or sprinkles (or all 3). Slice and serve!