Is there any way to hide the collisions layer, so it doesn't show up in the SWF but the player still colides with it?
To be honest, layers don't really matter a whole lot when it comes to code. It just helps you visually sort out content and organize matter. That having been said, let's say that your instance name for the collision blocks is "collision_blocks". All you have to do is type:
collision_blocks.visible=false;
instead of
visible=false;
I hope that is making sense. Instead of setting the whole layer invisible, you code the particular content you wish as invisible.