It does not fall through the solids. It gets pushed through the solids by the move and rotate commands.
Would you use the controls that go with the behaviour (in your case the platform controls) this would not happen. Since you have the 'default controls' set on 'no' that would be the 'simulate actions'. The Platform controls will not push an object through the solids, because, well, they belong to the behaviour. Thats how its made, and why its made for.
A car that automaticaly stops for obstacles, (thats a behaviour: it scans the road and will use its own brakes) will get pushed through by a big truck behind it, because the truck does not belong to te cars system.
So, in youre case, the Platform is not usefull. Since you want 'grid movements', And the Platform is not suitable for that. Just because you cant use its controls, there is no gain in using the behaviour.
1/ Dont use the Platform.
2/ Code youre own falling movement (change Y every tick, dt corrected).
3/ When a key pressed, first store the current position of the players in variables.
4/ Then make the move or the rotation.
5/ Then check if that move is possible by checking overlaps with walls and allready fallen blocks.
6/ If the move is not possible, fall back to the stored position.
7/ Spawning will happen on the collisions.