@Dopey, The real reason why Runescape can only have a max of 2,147M is that for the stacks they declare them as int. It saves memory.
Java int:int is 32 bit signed type ranges from –2,147,483,648 to 2,147,483,647.
Whereas if they had used long to declare stacks:
long: The long data type is a 64-bit signed two's complement integer. It has a minimum value of -9,223,372,036,854,775,808 and a maximum value of 9,223,372,036,854,775,807 (inclusive). Use this data type when you need a range of values wider than those provided by int.
Other types: