I would distribute your content as a SQLite file. I've done something similar in a mobile application with the same exact use case (people creating game files and distributing them to the players) and it works pretty well.
First of all BASE64 is ASCII encoded after all, so you can use the VARCHAR type to store up to 2GB, which I think in your scenario is definitely enough. You can also use an indexed column to access data in an efficient way.
The best pick according the info you gave us IMHO is to create one table for each type, using a varchar primary key to access data using the key value through a simple select returning just that row. SQLite is incredibly efficient in these kind of scenarios.
Another point that you can take into account is that, being binary, SQLite gives you a decent size reduction storing data in a binary file instead of a text file. This SO question explains a bit more the topic.
Last but not least SQLite is very lightweight and, either natively or via a wrapper, it's avalaible for a huge number of platforms (embedded stuff included).