Preheat oven to 325F and grease a 9x9 inch square baking pan (if using an 8x8 inch, the cake will need to bake a bit longer).
In a large bowl, whisk together the almond flour, shredded coconut, sweetener, protein powder, baking powder and salt. Stir in coconut oil, egg whites, nut milk and vanilla extract until well combined.
Spread batter in prepared baking pan and bake 30 to 35 minutes, or until set and a tester inserted in the center comes out clean.
Remove from oven and let cool 15 minutes, then poke with a skewer at ½ inch intervals all over cake.
In a medium saucepan over medium heat, combine coconut milk and sweetener and bring to just a simmer.
In a medium bowl, whisk together the egg and egg yolk. Slowly stir in about ⅓ of the hot coconut milk, whisking continuously. Then slowly whisk egg mixture back into hot coconut milk.
Cook another 4 to 5 minutes, whisking continuously, until mixture begins to thicken. Remove from heat and whisk in coconut extract and vanilla extract. Sprinkle surface with xanthan gum and whisk briskly to combine.
Pour mixture evenly over cooled cake, shaking gently from side to side to get as much mixture into the poke holes as possible.
Refrigerate 2 hours until completely cooled.
Whip cream with powdered sweetener and vanilla extract until stiff peaks form. Spread over chilled cake and sprinkle with toasted coconut.
*For a dairy-free version, you can make coconut whipped cream by refrigerating a can of coconut milk overnight and scooping out the thick cream from the top the next day. Whip with sweetener and vanilla extract until firm.