Ok, so I just finished adding multiple layer support. You can find my fork of bpiphany's source
here. Mapping different layers is pretty straightforward, but a few aspects could use an explanation anyway.
Unlike my previous layer implementation, the only place you need to change things is in the layout file (ansi_iso_jis.c for the Filco controller) where you can place the function key(s). I've also implemented the function key in a number of different ways:
KEY_FN_TOGGLE - Press to toggle between layer 0/1
KEY_FN_HOLD - Hold for layer 1, release for layer 0
KEY_FN_SWITCH - Mostly like FN_HOLD, but sends you to layer 8 when pressed, and returns you to the previous layer when released. This was made so that you can get to the KEY_FN_# keys which i placed in layer 8 which will let you switch to layers 0-7. Although you can place KEY_FN_# in any layer though make sure you don't make it so you can get stuck in a layer.
These function key implementations can also be mixed, though I don't really see much reason why.
Have fun!
PS. I haven't tested this on the custom Filco controller, but it works just fine on my Phantom.
PPS. I also added a windows batch file which will do the make clean operation, because I cannot in the life of me make WinAVR's find.exe work properly.