The following is a list of known file formats used by the 3DS.
.CXI - CTR Executable image - Are either packaged into a CCI/CSU for running off a cartridge, or packaged into a CIA for installing to the SDMC or NAND.
.CFA - CTR File Archive - Externalized Rom-FS. This is non-executable specialisation of the NCCH container format. Generally used in conjunction with an executable specialisation of the NCCH container format (CXI).
.APP - The per-console encrypted form of a NCCH file, used with installed titles, like eShop and CDN downloads.
.CAA - A CXI which uses a raw ELF for the ExeFS .code section. Also has no plain region.
.CCI - CTR 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. This is simply a NCCH container, with a maximum of 8 NCCHs.
.CSU - CTR System Update - Format varies slightly with revisions.
Descriptor File Formats
.BSF - Descriptive data used when outputting ICN/BNR files. The .XBSF format used by CiTRUS is based on the concept of .BSF.
.RSF - Descriptive data used when outputting a CCI/CXI file. Specifies options such as: title, save type, and so on.
.DESC - Descriptive data used when outputting a CCI/CXI file. Like the .RSF format, but more complex (more complex in the options which it can specify). The signed NCCH RSA-2048 key pair is taken from this file.
.AXF - Pre-assembled ARM code. Before being linked into the ExeFS '.code' format. These are ARM specific ELF files. The Plain Region found in the CXI is also obtain from this file.
.BNR - Simply contains a .CBMD and a .BCWAV. The .CBMD has added padding, to make sure the .BCWAV is aligned to 0x10 bytes. It contains nothing else.(The .CBMD file's header is edited to reflect it's new size)
.ICN - Contains icons, names and flags for an application
.ARC - Archive. A container of files, all compressed with LZ-10.
.BCMA - CTR Manual (an ARC file).
.SARC - Simple(?) Archive. A container of uncompressed files.
.BCFNT - CTR Font File (version 3).
.BFFNT - CTR Font File (version 4).
.CIA - CTR Importable Archive - This format allows the installation titles to the 3DS. CIA files can contain NCCH files for installation to either the SDMC or CTR NAND. CIA files can also contain .SRL files (format for DS(i) executable images) for installation to the TWL NAND of the 3DS. Anything distributed over Download Play (including card software) are created with this format as well.
.TMD - Title Meta Data - The format is used with installed/installable titles. Notably they are found in .CIA files (plain text), on the SD card (encrypted), NAND (encrypted) and on Nintendo's CDN (plain text).
.CTX - When beginning eShop app downloads, this file is created. Later this file is written with actual data. When the download is completed, the file is deleted from SD card.(This might then be moved to NAND) This is encrypted with a per-console key. It contains a signed cert followed by unknown data. It is only 1.50kbyte. Here is an example.
Audio File Formats
.(B)CWAV - CTR waveform file format
.(B)CSTM - CTR stream file format
.(B)CSAR- CTR adaptation of BRSAR.
Graphics File Formats
.CBMD - CTR Basic Model Data - Archive file before being made into a CTR banner for games or other applications.
.CTPK - CTR Texture PacKage
.CMDL - CTR MoDeL data
.CTEX - CTR TEXture data
.CCAD - CTR Celluloid Animation Data
.CSKA / .CSKLA - CTR SKeLetal Animation data
.CMATA - CTR MATerial Animation data
.CMDLA - CTR MoDeL Animation data
.CLGT - CTR LiGhT data
.CPTL - CTR ParTicLe data
.CLTS - CTR LookupableSetdata
.CENV - CTR ENVironment data
.CCAM - CTR CAMera data
.CMAT - CTR MATerial
Other File Formats
.NSA - Archive used by several of the communication protocols in the 3DS.
.CRO - This is a CTR "DLL".
.CRS - This contains symbols for CRO "DLLs".
.CRR - This contains data for verifying CRO files.
.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
.CGRP - CTR GRouP - Used to package several formats like (CWAR, CWAV, CWSD, CBNK, CSEQ, ect...) sort of like the Wii's MRG format. (they aren't the same structures but both package together several formats)
The 3DS filesystem requires absolute paths. It can handle either short (8.3) and long (255 char maximum) file names.