Max vnums are defined in mud.h
Somewhere around line 236 or so, you should see a define:
Change it to whatever size you want it to be.
There are other places you'll need to change as well. build.c has a lot of refrences to the old 32000 hard coded value. You'll need to change those to match what you have in mud.h. I suggest you grep though build.c and look for something like this:
if( evnum < 1 || evnum > 32000 )
Note, that that may or not not be exact in every case. There were quite a lot of places that had to be changed. I can't remember if I had to modify db.c or any other file. I honestly recommend searching for the value 32000, and taking it on a line by line basis.
I think the max vnums you can have is the size of an int -1.
What I did in most cases was change the hard coded value to the define of MAX_VNUMS. That way if I ever changed mud.h's define, they all get changed and I don't have to worry about editing each and every file.
Hope it helps,