I'm not sure what the situation is now, but last I heard the stack size of the main thread is 8 MiB, so you should not be surprised to see 16 MiB of data overflow the stack. Use a Vec instead to put the data on the heap.
On Linux, you can query the stack size limit of applications using ulimit -s, and disable it for the current shell using ulimit -s unlimited. Not sure how that's done on other operating systems.
In this case, however, I'd rather use global memory for your big array, either through static memory or through dynamically allocated memory, such as vec![]'s.