In the long term, Wikidata is probably the way to go on something like this.
In the short term, as far as dividing things up, note that you can implement on-demand loading in Lua easily enough using the __index metamethod.
local obj = {}
setmetatable( obj, { __index = function ( t, k ) -- This will get called on access of obj[k] if it is not already set. -- Do whatever you might need, e.g. require() a submodule, -- assign things to t for future lookups, then return the requested k. end } )
return obj
Also note that you can save space at the expense of code complexity by accessing "obj.us_name or obj.name" rather than storing the same string in both fields; remember in Lua only nil (unset) and boolean false are considered "false", the number 0 and the empty string are both considered true.