I'm currently at work so don't have time to code it - but will do so when I get a chance and post the diff.
Basically I just hard coded the layeredmatial getBSDF (?createBSDF) method to return a multiBSDF which contained both a specular reflector and a lambertian.
Then I altered the getWeight function in the specularReflection BxDF - and you can see the brightness fluctuate significantly when they are rendered (bidir + MLT). I spent a while looking at it and the multiBSDF methods look fine to me - and are similar to what I do in the layered mat. I suspect it's a bidir issue- but got lost looking through that code!
