If your stuff is not ready to give to others, please consider doing a short write-up of what you have done. Someone else might feel tempted to roll it into some patches and PHP
Good call. Ok, here's a short description of what I've done. I have used a FreeBSD 6.2-STABLE with all patches and kernel recompiled. Then I pretty much followed the outdated developer's guide to add functionalities. I also used workon.sh to use an existing image and modify it.
First step was recompiling the kernel using the kernelconfig from SVN : http://svn.m0n0.ch/wsvn/wall/branches/freebsd6/build/kernelconfigs/?rev=0&sc=0
I used the one for M0N0WALL_NET48XX since my development was made on soekris. You also need the kernel patches and apply them : http://svn.m0n0.ch/wsvn/wall/branches/freebsd6/build/patches/kernel/?rev=0&sc=0
Once kernel is rebuild, copy necessary kernel modules to the first image and kernel compressed as indicated in the dev guide. At this stage, I just recompressed the image and flashed it on my existing 1.3b4 (which i renamed 1.3b4-ipv6 to avoid any confusion).
After reboot, you can use exec.php with commands such as : ifconfig -a to spot if IPv6 is now part of the base kernel.
After having done that part, you need to add system tools, I added ping6 since it is useful (remember again to strip it before copying onto your image). Do the same for rtadvd and follow official documentation on how it works. Copy rtadvd.conf to /etc on the disk image and make sure it suits your nic name and subnet configuration.
The following considers that you also used csup to get the freshest list of ports possible.
I used AICCU 20070115 since this is the latest stable. You will need to strip aiccu and put it in /usr/sbin for example. It needs extra libs, so ldd aiccu to find out which ones to copy. You also need to copy your aiccu.conf file to /etc and make sure you have changed user/pass/tunnel/server. Remember that aiccu requires proper NTP so make sure you're running one.
Once you've done that step, edit /etc/rc and put commands on the fly in this, it is very dirty and should be handled with separate scripts but as I was saying, I have been testing this out and needed to make a quick run to see if it was worth sticking to m0n0.
Once done, you can recompress the image and just flash it again and reboot your m0n0. This should hopefully work. You can test commands without changing the rc script at first. exec.php has been of great help in order to test this.
I got the tunnel running, ipf has been the culprit here in blocking all IPv6 traffic. If m0n0 ever switches to pf, I'll be able to help more since I know it much more than ipf. Depending on the commands you type, you might loose connectivity to your box so make sure you have a serial lying around or similar.
Hope this helps.