A few thoughts:
The walls have a curved distortion. You can correct that by multiplying the height of the walls by cos(player.angle-raycast.angle) or something like that.
You don't need to make the sprites so big. You could make them 32x32 and they would be able to be stretched to any size you want. That would make for a smaller download.
It possibly may not work when you export the the arcade due to the frames being packed together and the filtering causing the wall slices to not be visible. I don't have any thoughts on correcting that yet.
Textured walls should be no problem. Take say a 128x128 texture you want to use and import it as spritesheet in the image editor with 128 horizontal parts. You'll then have 128 vertical slices of the texture and you just set that from where you hit the wall.
The raycasting events can also be changed in many ways:
One way could be to jump 16 pixels at a time, then when a wall is hit it would back out 8 at a time until not overlapping, then back forward by 4... and so on till it's precise enough for you. It would be more efficient for further distances.
You could also make the loop stop if the distance got too big so far away stuff just wouldn't be drawn.
Another approach could be to line intersection math of the ray against the four edges of the walls ( or only some of them that actually face the player). It would be more precise and would make finding where on wall easier for texturing purposes.
The is also a raycast plugin that could be useful instead of the previous.
A final idea would be to use what wolf3d actually used, a dda. Basically it would step the ray along the edges of a grid, and supposedly it is very efficient. Most wolf3d tutorials online explain it in more detail.