Lightly grease a 13x9-inch baking pan with cooking spray and set aside.
Place a strainer over a large bowl and strain the pineapple juice from the crushed pineapple. Reserve ½ cup of the pineapple juice, and set aside the crushed pineapple.
In a large bowl, combine the reserved pineapple juice, eggs, sugar, vanilla extract, and vegetable oil.
In a separate large bowl, whisk together the flour, baking powder, baking soda, and salt.
Add ⅓ of the flour mixture into the bowl with the wet ingredients at a time and mix until well combined.
Mix the crushed pineapple into the batter until combined.
Spread the batter evenly in the prepared pan. Bake in the preheated oven for 35-40 minutes until the top is golden brown. Cover the cake with foil and bake another 10-15 minutes until a toothpick inserted into the center of the cake comes out clean.
Remove the cake from the oven and use a wooden skewer, the handle of a wooden spoon, or a fork to poke holes all over the cake.
In a large bowl, whisk together the coconut cream pudding mix and milk until combined. Before the mixture gets too thick, pour the pudding over the cake. Spread the mixture over the cake trying to get it into the holes as much as possible.
Chill the cake in the fridge until it is set and cool, about 2 hours.
Use a stand mixer or a hand mixer to beat the heavy cream until it begins to form soft peaks. Add the confectioners' sugar and rum extract to the bowl and continue beating until stiff peaks begin to form.
Spread the icing evenly over the chilled cake. Top with the shredded coconut. Store cake in the refrigerator until ready to serve.