>>13
リンク先読めよ。アルゴリズムというほどでもなく、判定文がひとつあるだけ

CountofClusters =
( BPB_TotSec16
+ BPB_TotSec32
- BPB_ResvdSecCnt
- ((BPB_FATSz16 ? BPB_FATSz16 : BPB_FATSz32) * BPB_NumFATs)
- ((32 * BPB_RootEntCnt + BPB_BytsPerSec - 1) / BPB_BytsPerSec)
) / BPB_SecPerClus;

?クラスタ数4085以下のボリュームはFAT12である。
?クラスタ数4086以上、65525以下のボリュームはFAT16である。
?クラスタ数65526以上のボリュームはFAT32である。

これがFATタイプ決定の唯一の手段です。

> クラスタとセクタのサイズを決め打ちすると
> アンドロイドとの互換が保てないとかあるから
> 決め打ちはいけないとか・・・・

決め打ちしてないよね?
問題提起したい個所をどうぞ