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.
.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.
ExeFS Related File Formats
.AXF - Pre-assembled ARM code. Before being linked into the ExeFS '.code' format. They're practically ARM specific ELF files. The Plain Region found in the CXI is also obtain from this file.
.ICN - Contains icons, names and flags for an application
RomFS Related File Formats
.ARC - Archive. A container of files, all compressed with LZ-10.
.BCMA - CTR Manual (an ARC file).
.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.
.TMD - Title Metadata - 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
.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
.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
.CDI - CTR Development Image - CDI files are system processes which other types of applications depend on for access to various other lower level functions. CDI are normally the same titles as listed in a CXI header's dependency list, they are just compiled to a different format. The difference is that CDI is used for a different (test) environment. They're loaded into hardware debugger's memory, along with the 2 cores in order to execute.
.NSA - Archive used by several of the communication protocols in the 3DS.
.CIP - (CTR Initial Process)
.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.