1: In Game Maker, I used to just save encrypted data to an INI file. Although that's not what INI files are technically for, I found the organization nice. You could very easily save as a text file of sorts, maybe with encrypted information, but it requires more work depending on how you save the data. Basically, you just store the various values in the file and have the game itself process that information. I've also seen people save snippets of code directly, such as "var = 1"
In short, I suppose the most important factors are ease of use and cheating. If you don't mind people easily tampering with variables, go for a plain text file. Otherwise, look into encryption, etc., etc.
2: With a lot of level-reading games like Spelunky, everything is grid based; usually 16 x 16. So level files are just a string of characters that denote different objects. In the game itself, you would probably use something like a for statement to place every 16 blocks from left to right. Once the code reached the end of the room, it would skip to the next 'line' 16 pixels lower. Rinse and repeat. This is just a dumbed down version, though.
Procedurally, there are tons of ways. Some people use algorithms. I think Spelunky's case there are a bunch of pre-made level chunks (such as those snake pits) that are combined together to create an entire level. I could be wrong, though.