What causes this weird collision?
There is a difference between the shape of the mesh, and the shape used for collision detection. Often a mesh is too complex to allow for real-time collision detection.

What you "see" is the convex hull of the Tetris block. It's basically the shape that you'd get when wrapping a shape with an elastic band (in 2D) or elastic sheet (in 3D). In this image, the green shape is the convex hull of the black shape:



The Convex Hull is easy to do physics sims with. It's also quite predictable, since objects cannot hook into each other and will be able to slide off of each other. If you want to have the exact shape of the object used for the collission detection, use the "Mesh" choice. Since your meshes are simple Tetris blocks (compared to, say, high-polygon, detailed game characters) this should work fine.