Cotton Spore will lower the opponent's Speed by 2 steps (termed BTLs in the Gameboy description) on the Stat growth scale.
Cotton Spore will always fail if it has already been used 3 times on the same pokemon, without a move that raises Speed being used by or against the pokemon affected by Cotton Spore. This is due to the fact that a stat may only be lowered by a maximum of 6 steps, until it is reset by the use of Haze or the pokemon is switched out normally. The maximum is the limit of how many decreases can be applied to a stat. If another move decreases the Speed stat of the pokemon that Cotton Spore is used against, the number of steps that it decreases the Speed stat by will count toward the 6 step limit. This will not reduce the number of times that Cotton Spore can be used unless the decrease is by at least 2 steps. The decrease will still max at 6 steps, so Cotton Spore will only provide a 1 step decrease if there are already 5 steps of decrease in effect.
Cotton Spore is affected by Brightpowder when the opposing pokémon is equipped with it.