Use ARRAY. This is what it's built for as you get a nice Download and Load feature using JSON storage. So it's a great way to use webstorage or AJAX.
I can see you need a lot of data and I'm not sure if 3 levels deep is enough. I would suggest maybe an alternative storage model than 1 node = 1 piece of data. Check out the manual for Expression on strings and tokenate function. Tokenate splits string data by character.
String = "name|x|y|gravity|wealth|minerals|foo|...."
example = "Zebes|100|200|0.5|poor|low|hostile|...."
so then you array can be
Array[systems][planets]
Or you can use Spritebank(plugin) which I think will store all your sprite data and reload them when you want.
edit:
By default browsers easily allow up to 5mb of data. Past that browsers prompt users for the website to use more data. However even at 200 systems * 10 planets. You will still have enough room.