For the cake: Prepare a 13×9-inch baking pan with non-stick baking spray. Preheat the oven to 350 degrees.
Whisk the eggs, sugar, and vanilla in a large bowl for about 1 minute (you can use a whisk or a hand blender). Add the oil and whisk well to fully combine.
In a medium bowl, combine the flour, baking powder, baking soda, and salt. Add 1/3 of the flour mixture to the egg mixture and whisk to combine. Add 1/2 of the crushed pineapple and whisk to combine completely. Add another 1/3 of the flour, then the remaining crushed pineapple, and the remaining flour mixture; whisking well to combine between each addition. Scrape the sides of the bowl with a rubber spatula and fold in any unincorporated bits. Transfer the batter to the prepared pan.
Bake until golden brown, 35 to 40 minutes. Loosely place foil over the top of the cake to prevent excess browning. Bake for another 10 to 15 minutes until a wooden pick inserted in the center comes out clean. Remove the cake from the oven. Using a wooden spoon or a fork, poke holes all over the cake.
For the soak: Whisk together the cream of coconut, rum, and lime juice. Slowly pour the cream of coconut mixture over the top of the warm cake. Allow to cool completely.
For the topping: Using a hand mixer fitted with the whisk attachment, whip 1 1⁄2 cups of cream in a large bowl on medium-high speed until thickened. Add the confectioner’s sugar and whip until firm peaks form. In a fine mesh strainer set over a bowl, drain the crushed pineapple and reserve the liquid.
In another large bowl, whisk the remaining 1 1⁄2 cups of cream, the pudding mix, and the liquid drained from the can of pineapple until smooth. Fold the whipped cream into the pudding mixture in 3 additions until evenly combined. Fold in the drained pineapple.
Gently spread the topping over the cooled cake. Refrigerate for at least 2 hours.
To serve, sprinkle the cake with the toasted coconut and decorate with maraschino cherries and lime zest, if desired.