So, the Golden Rule Of Stack Overflow hits again:
Post a question, and within 5 minutes you will find the answer on your own. But only if you post it!
Jokes aside, this is how I solved it:
Before connecting the outer converter #1 (between the source render callback, and the first filter) I grabbed the filter's native stream format, and manually set it to the converters stream format (output scope), like this:
AudioStreamBasicDescription filterStreamDesc = { 0 };
UInt32 size = sizeof(filterStreamDesc);
// GET
result = AudioUnitGetProperty(reverbUnit,
kAudioUnitProperty_StreamFormat,
kAudioUnitScope_Input, // output or global should work, too?
0,
&(filterStreamDesc),
&size);
[self checkAudioResult:result]; // (custom method that compares against noErr)
// SET
result = AudioUnitSetProperty(converterUnit0,
kAudioUnitProperty_StreamFormat,
kAudioUnitScope_Output,
0,
&(filterStreamDesc),
size);
//(input stream format already set above)
[self checkAudioResult:result]; // (custom method that compares against noErr)
So to sum it up, for some reason I had to directly set both stream formats: input(int) and output (float) before I could connect this converter. The one between the existing multichannel mixer and the new reverb filter somehow manages to set itself up automatically... (still a bit puzzled, but then again... Core Audio, right?)