I love it, all the different patterns, looks so nice. Great job.
There's some suggestions to shrink your code.
Semicolons (;) are'nt needed
if(v==2)x+=1;m() -> if(v==2)x+=1m()
If it did'nt work, use ; or space otherway.
Your r() function take more characters than use r(8)\1 each time.
function + call it 4 times = 40 chars function l()return r(8)\1endr()r()r()r() 6 chars * 4 times = 24 chars r(8)\1r(8)\1r(8)\1r(8)\1
Maybe you can change _init and _draw with labels ::i:: and ::d::, you can change both or only _draw. You can't call a label that's outside of the function.
This can be write in another way (11 chars to 8 chars).
(r(3)-1)\1) -> r(3)\1-1
With this, try to correct the monsters spawn when a new level is created.