Mappers like MMC3 and VRC6 seem to have 256K CHR capacity (according to the wiki). However, taking that my calculations are correct, some games such as Mario 3, RECCA and Castlevania 3 only seem to use 128K of that space. If I remember correctly one 256 tile block is 4K in size and all 3 games I mentioned seem to use 32 of these 4K blocks (or pages?). Is it actually possible to add more than that or were there some restrictions why they only could use half of the CHR capacity available?
They chose to use less because bigger chips cost more.
The constraint on the ROM size is cost, since doubling it doubles the cost.
For the mapper hardware, it's cheap to add one more bit to double the address range. The constraint there is the number of I/O pins on the chip package.
MMC3 probably maxes out at 256KB of CHR memory because the smallest chunks it can address are 1KB in size, and in an 8-bit architecture the highest sensible number of "things" you can reference is 256. Designing the mapper to see/manage more than that probably wouldn't have added too much to the cost, but where would the extra bit(s) for the bank number come from in an 8-bit architecture? That would probably have made the mapper interface more awkward to use, and 256KB seemed like a fair amount at the time the chip was designed, so this probably didn't seem like much of a limitation anyway.
Anyway, even though the mapper chip supported 256KB of CHR memory, ROM still cost money, so not all games made use the full capacity unless they had a good reason to, or were made at a later point in time, when memory costs had already gone down.
Are there any known games that actually use the full capacity or at least close to it?
Kirby uses the full capacity of the MMC3 (512KB PRG + 256KB CHR).
If you're talking about CHR-ROM only, here's a NesCartDB search for MMC3 games with 256KB of CHR-ROM:
http://bootgod.dyndns.org:7777/search.p ... 9+20+41+53