The following is a list of known file formats used by the 3DS.

Applications ( any executable code )

.CCI - Cart image. Burned into a ROM (or loaded by official debugging hardware). These are also the actual format of ROM dumps, and the response of read requests between a 3DS and a cartridge.

.CXI - Executable image. Similar to above. The difference is CXI applications are installed onto [thus ran from] NAND.

.CIA - (CTR Importable Archive) It is the application compiled into an archive, ready to be installed to a designated location. A .CIA file can be extracted to install applications to the, CTR NAND, TWL NAND (part of the NAND used by DSi applications), and the SD card.

.CSU - System Update. Format varies slightly with revisions.

.CFA - Externalized ROM-FS. CXI data and ROMFS data can be separated into a list of external files instead of compiled into just 1 CXI image. (Normally not used.) ^ CTR File Archive. Lib states this is similar to a CIA, a little like an archive of a CIA. Fortunately lib has some info on this format. CFA files are basically multiple packed CIAs. CFAs are used when the CCI file includes the child device distributed with download play.

.NSA - Archive used by several of the communication protocols in the 3DS.

.RSF - Descriptive data used when outputting a CCI/CXI file. Specifies options such as: title, save type, and so on.

.AXF - Pre-assembled ARM code. before being linked into a CCI/CXI format.

.CDI - CTR Development Image. Lib did not have any documentation about what this format is, what it does, etc. I had to go digging through the compiler to find this format listed. Hopefully I'll find more soon. *Possibly* associated with the CTR Debugger but that's just a guess.

.CIP - CTR Initial Process. Unfortunately the circumstance is much like the CDI format, but it's in the lib compiler so it is some type of format used by the 3DS.

.BCWAV - CTR waveform file format

.CBMD - CTR binary banner model. Archive file before being made into a CTR banner for games or other applications.

Filesystem

The 3DS filesystem requires absolute paths. It can handle either short (8.3) and long (255 char maximum) file names.

MPO (Multi-Picture Object Format)

Document describing the file format used in mpo files: http://www.cipa.jp/english/hyoujunka/kikaku/pdf/DC-007_E.pdf

Nintendo's MPO Specifications