Since 3.x there should be no artificial limit, only your RAM. I have run with several hundred (~400), and I recall Jason also testing with similar numbers.
What was the exact error message (both in the shell, and in dmesg)? How was your RAM at that point?
edit: Oh, just to make sure, did you have util-linux loaded? Util-linux mount doesn't support dynamic loops, so using it will appear that you have run out; but in reality, busybox mount works just fine, and so does util-linux mount if you mknod the new loop first.