Well I can't answer the array size limitation question... but I can say normally I wouldn't store what is I'm assuming your entire world's procedurally generated values in an array to begin with. You should be able to look up a value at any given position for a particular seed any time you want, so just get the relevant values as you need them from a function.
Alternatively, if you must have the values in an array, you can split your arrays into chunks (can still be a single array object, with multiple instances). Use x/y instance variables to keep track of the relative position of each array, and have each array's size be whatever you're comfortable with that doesn't crash.
I'm just guessing here, but I think the array size limitation is based on your system, so I'd stay well away from that threshold if I were you, since your end users' systems might not be as capable as your own.