That for starters, it's extremely inaccurate tho.
http://3dbrew.org/wiki/Home_Menu#BadgeMngFile.dat
0x04 - amount of different collections
0x08 - amount of unique badges
0x0C - amount of badges placed in the Home Menu
0x18 - amount of all badges
0x1C - 4-byte something looking like a checksum
0x3E8 starts an array of values 0x28 byte long
First 4 bytes - checksum? It's not CRC-32, or is it? If it's CRC-32, then I don't know which part of the rest of this array entry is checksumed.
0x04 - badge ID in hex, after converting to dec looks like something like "XYZ00" with X, Y and Z being digits and X can be 0.
0x08 - badge collection ID
0x0C - badge order ID in that tool to place badges
0x10 - the amount of badges placed in the Home Menu already
0x12 - the amount of badges you have
0x14 - 2-byte something I have no clue about
0x18 - shortcuts to apps, 0x10 long. There are two repeats of the same value being title IDs from this list:
http://3dbrew.org/wiki/Title_list#00040010_-_System_Applications
In order to make a shortcut work, one must write the entire extended string twice, for example if you want to call Activity Log on European 3DS, it goes like 00 22 02 00 10 00 04 00 00 22 02 00 10 00 04 00.
If a badge has no shortcut, all the bytes get replaced with FFs.
That's all I know.
EDIT: Ooh, I something another that would be interesting. 0xB2E8 is the beginning of the "Home Menu layout section" array with 0x18 long values.
0x00 - The 6-byte ID from the upper section: 4 first bytes are probably checksum, second are badge ID.
0x08 - Collection ID
0x0C - Badge order ID
0x10 - ?! Ascending numbers anyway
0x14 - 4-byte always (?) FFs.
EDIT: Fufufufu, they've secured it up nicely. 0xA030 begins the 'collection' section. Array with 0x48 long values.
0x04 - ?!
0x08 - Collection ID
0x14 - Amount of unique badges you have from that collection
0x18 - Total amount of badges from that collection
0x1C - Starting badge ID of this collection
Progressing it up nicely, I'll try to clone some badges really soon.
EDIT: I did it!
Steps to multiply the amount of badges:
1. Edit 0x18
2. Edit 0x12 in the first array of badges.
3. Edit 0x18 in the 'collection' array.
Easy, I'll try to tinker some more and maybe code a tool for it.
EDIT: BadgeMngFile.dat is updated after connecting to the internet in the Badge Arcade app, so if you open it up, any modifications you made will be removed.