Preheat oven to 350°F. Line 9-inch square baking pan with parchment paper, allowing parchment to run up the sides and slightly over the pan. Grease with cooking spray or butter and set aside.
CAKE: In a large mixing bowl, cream together butter and sugar until smooth. Add eggs and vanilla. Scrape down bowl as needed. Mix until thoroughly incorporated.
In another bowl, whisk together flour, baking powder, baking soda, and salt. Add half of flour mixture into mixing bowl. Stir to combine. Add milk and mix together. Add remaining flour mixture and continue to mix until there are no longer any dry streaks of flour. Batter will be thick.
PINEAPPLE: Toss pineapples in sugar, cinnamon, and salt. Set aside.
TOPPING: Whisk together flour, sugar, cinnamon, and salt. Using two forks cut cold butter into dry ingredients until mixture resembles coarse sand. Toss in sliced almonds. Set aside.
ASSEMBLY: Spread ⅔ of cake batter into prepared baking pan. Spread pineapple mixture (including any expelled juices) on top. Dollop remaining 1/3 batter on top. Spread into an even layer. Add crumb topping all over.
Bake for 40-45 minutes until toothpick inserted in center of cake comes out clean. Allow cake to cool in pan for 15 minutes before unmolding from pan. Dust with sifted powdered sugar before slicing and serving.